The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Data processing systems include processors that execute program code and process data. The program code (code) such as an operating system (OS) includes a set of commands or instructions that a processor executes to process data. Referring now to FIG. 1, a data processing system 10 includes a processor 12, a disk drive 14, a host adapter 16, and a system memory 18. The processor 12, the host adapter 16, and the system memory 18 communicate via a system bus 20.
The disk drive 14 stores data on magnetic surfaces. The disk drive 14 communicates with the host adapter 16 via a standard I/O interface 24 such as ATA, SATA, USB, etc. The host adapter 16 reads the code and data from the disk drive 14 into the system memory 18. The processor 12 reads the code and data from the system memory 18, executes the code, and processes the data in the system memory 18. The host adapter 16 may read the processed data from the system memory 18 and store the processed data in the disk drive 14.
The disk drive 14 stores the code and data in a nonvolatile manner. Thus, the disk drive 14 can provide the code and data to the processor 12 every time power is turned on. The disk drive 14, however, provides code and data to the processor 12 at a rate that is slower than the rate at which the processor 12 can execute the code and process the data. On the other hand, the system memory 18 is generally volatile. That is, contents of the system memory 18 may be lost when power is turned off. But the system memory 18 can provide the code and data to the processor 12 faster than the disk drive 14.
The processor 12 may execute the code and process the data from the system memory 18 while the host adapter 16 loads additional portions of the code and/or data into the system memory 18. The processor 12, however, can execute the code and process the data from the system memory 18 faster than the rate at which the host adapter 16 can load additional code and data into the system memory 18 from the disk drive 14. Moreover, since the system memory 18 is generally volatile, the host adapter 16 needs to load portions of the code and data into the system memory 18 every time power is turned on. Thus, the processor 12 may wait until portions of the code and data are loaded into the system memory 18.